package com.gzs.learn.payment.util;


import org.apache.commons.lang3.StringUtils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TimeUtil {
    public static final String TIME_TIME_FORMATE_SHORT = "yyyyMMddHHmmss";
    public static final String TIME_TIME_FORMATE_NORMAL = "yyyy-MM-dd HH:mm:ss";
	public static final String TIME_TIME_FORMATE_NORMAL_MIDDILE= "yyyy-MM-dd HH:mm";
	public static final String TIME_DATE_FORMATE_SHORT = "yyyyMMdd";
    public static final String TIME_DATE_FORMATE_NORMAL = "yyyy-MM-dd";

	public  static String  getTimeString(final String format){
		SimpleDateFormat fmt = new SimpleDateFormat(format);
		String time = fmt.format(Calendar.getInstance().getTime());
		return time;
	}
    public  static String  getTimeString(final String format,Date time){
        SimpleDateFormat fmt = new SimpleDateFormat(format);
        String result = fmt.format(time.getTime());
        return result;
    }
	/**
	 *
	 * @param time:输入时间
	 * @param format：时间格式
	 * @return:如果出错，返回0；如果正确，返回解析后的时间。
	 */
	public static long getTimeLong(final String time,final String format) {
		SimpleDateFormat fmt =new SimpleDateFormat(format);
		try{
			Date date = fmt.parse(time);
			return date.getTime();
		}catch(Exception e){
			return 0;
		}

	}
	/**
	 *
	 * @param src:输入字符串
	 * @param startStr：时间串的前部分
	 * @param endStr：时间串的后部分
	 * @param format：时间格式
	 * @return：如果出错，返回0；如果正确，返回解析后的时间。
	 */
	public static long getTimeLong(final String src,final String startStr,final String endStr,final String format){
		if(StringUtils.isBlank(src))
			return 0;

		int startPos = src.indexOf(startStr);
		int endPos = src.lastIndexOf(endStr);
		if(startPos<0 || endPos<0 || endPos<=(startPos + startStr.length()))
			return 0;
		String timeStr = src.substring(startPos+startStr.length(), endPos);
		if(StringUtils.isBlank(timeStr)){
			return 0;
		}
		long result = getTimeLong(timeStr, format);
		return result;
	}

}
